﻿namespace Decorator_mode
{
    internal class Program
    {
        /// <summary>
        /// 装饰者模式为已有功能动态的增加更多功能的一种方式
        ///装饰模式把每个要装饰的功能放在单独的类中，并让这个类包装它所要装饰的对象
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            Person xm = new Person("小明");
            Console.WriteLine("第一种装扮：");
            Sneakers sk = new Sneakers();
            BigTrouser bt = new BigTrouser();
            TShirts ts = new TShirts();

            sk.Decorate(xm);
            bt.Decorate(sk);
            ts.Decorate(bt);
            ts.Show();
            Console.WriteLine("\n第二种装扮：");
            BigCoat bigCoat = new BigCoat();
            Shorts shorts = new Shorts();
            Slippers slippers = new Slippers();

            slippers.Decorate(xm);
            shorts.Decorate(slippers);
            bigCoat.Decorate(shorts);
            bigCoat.Show();






            Console.Read();
        }
    }
}
